package es1;

public class LinhaFactura
{
	private int		quantidade;
	private Produto	produto;

	/***********************************************************
	 * @param quantidade
	 * @param produto
	 ***********************************************************/
	public LinhaFactura(int quantidade, Produto produto)
	{
		this.quantidade = quantidade;
		this.produto = produto;
	}

	/***********************************************************
	 * @param quantidade
	 * @param produto
	 ***********************************************************/
	public LinhaFactura(LinhaFactura outra)
	{
		this.quantidade = outra.quantidade;
		this.produto = outra.produto;
	}

	/***********************************************************
	 * @return 
	 ***********************************************************/
	public double subtotal()
	{
		return quantidade * produto.getCusto_unitario();
	}

	/***********************************************************
	 * @return the quantidade
	 ***********************************************************/
	public int getQuantidade()
	{
		return quantidade;
	}

	/***********************************************************
	 * @param quantidade
	 *            the quantidade to set
	 ***********************************************************/
	public void setQuantidade(int quantidade)
	{
		this.quantidade = quantidade;
	}

	/***********************************************************
	 * @return the produto
	 ***********************************************************/
	public Produto getProduto()
	{
		return produto;
	}

	/***********************************************************
	 * @param produto
	 *            the produto to set
	 ***********************************************************/
	public void setProduto(Produto produto)
	{
		this.produto = produto;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString()
	{
		return "LinhaFactura [quantidade=" + quantidade + ", " + produto + "] Subtotal= " + subtotal();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#clone()
	 */
	@Override
	public Object clone()
	{
		return new LinhaFactura(this);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object outra)
	{
		LinhaFactura outra_factura = (LinhaFactura) outra;
		return this.quantidade == outra_factura.quantidade && this.getProduto().equals(outra_factura.getProduto());
	}

}
